﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AntikCompta.Data
{
    internal class Stock
    {
        public event DataChangedHandler DataChanged;
        DataMng mDataMng;
        public Stock(ref DataMng aDataMng)
        {
            mDataMng = aDataMng;
            foreach (Exercice ex in mDataMng.ExerciceListe)
            {
                ex.DataChanged += new DataChangedHandler(mExercice_DataChanged);
            }
        }

        void mExercice_DataChanged()
        {
            if (DataChanged != null)
                DataChanged();
        }

        public bool GetVentes(int aAnnee, out List<Produit> aListe)
        {

            aListe = new List<Produit>();
            foreach (Exercice ex in mDataMng.ExerciceListe)
            {
                foreach (Produit p in ex.Ventes)
                {
                    if (p.DateVente.Year == aAnnee)
                        aListe.Add(p);
                }
                
            }

            return true;
        }

        internal bool GetProduit(string p, out Produit aProd)
        {
            aProd = null;
            Produit prod;
            foreach (Exercice ex in mDataMng.ExerciceListe)
            {
                if (ex.GetProduit(p, out prod))
                {
                    aProd = prod;
                    return true;
                }
            }

            return false;
        }

        internal List<Produit> GetDispo(int aAnnee)
        {
            List<Produit> liste = new List<Produit>();
            foreach (Exercice ex in mDataMng.ExerciceListe)
            {
                if (ex.Annee <= aAnnee)
                    liste.AddRange(ex.GetNonVendus(aAnnee));
            }
            return liste;
        }
    }
}
